<?php
namespace app\port\controller;
use think\Db;
class Category extends Common{
	/**
	 * 获取该用户下所有的素材分组数据
	 * @return [type] [description]
	 */
	function index(){
		$where=[
			'status'=>1,
			'uid'=>$this->user['id'],
		];
		$list=model($this->table)->readAll($where);
		if(count($list)){
			$list=$list->toArray();
			foreach ($list as $k => $v) {
				$list[$k]['options']=json_decode($v['options'],true);
			}
			return json('获取数据成功',0,$list);
		}
		return json('获取数据成功');
	}


	/**
	 * 查询一条素材分组的信息
	 * @param [array] $post [接收用户传递的请求数据]
	 *                      -- token string 登录凭证
	 *                      -- data json 操作数据集
	 *                      	-- id 素材id
	 * @return [type] [description]
	 */
	function queryOneCategory(){
		$post=input('');
		// echo json_encode($post);
		// 判断是否存在data的json字符串
		if (isset($post['data'])) {
			// 将json数据还原成数组
			$data = json_decode($post['data'],true);
			if (!empty($data)) {
				// 判断分组是否存在
				// var_dump($data);
				// unset($data['media']);
				$uid = $this->user['id'];
				if (isset($data['id']) && $data['id'] != '') {
					$cate = Db::name('category')->where('id','eq',$data['id'])->find();
				}
				// print_r($cate);
				// 判断必填项是否为空
				if ($cate == '' || $cate['uid'] != $uid) {
					return json('参数错误',1);
				}
				// 抛出查询结果
				if ($cate != '') {
					$cate['options'] = json_decode($cate['options'],true);
					return json('查询成功',0,$cate);
				}
				else{
					return json('查询失败',1);
				}
			}
			else{
				return json('非法操作',1);
			}
		}
		else{
			return json('非法操作',1);
		}
	}


	/**
	 * 修改素材分组数据信息
	 * @param [array] $post [接收用户传递的请求数据]
	 *                      -- token string 登录凭证
	 *                      -- data json 操作数据集
	 *                      	-- id 素材分组id
	 *                      	-- uid 素材分组关联的用户id
	 *                      	-- name 素材分组名称
	 *                      	-- options 素材分组属性
	 * @return [json] [返回修改结果]
	 */
	function editOneCategory(){
		// 获取传递数据
		$post = input('');
		// 判断是否存在传递数据
		if (isset($post['data'])) {
			// 将json数据还原成数组
			$data = json_decode($post['data'],true);
			if (!empty($data)) {
				$uid = $this->user['id'];
				// 判断素材分组id是否为空
				if ((isset($data['id']) || isset($data['uid'])) && $data['id'] != '' && $data['uid'] != '') {
					$cate_reg = Db::name('category')->where('id = '.$data['id'].' and uid = '.$data['uid'])->find();
				}
				else{
					return json('参数错误',1);
				}
				// 判断是否存在该素材分组
				if ($cate_reg == '' || $uid != $data['uid']) {
					return json('素材分类信息有误',1);
				}
				// 判断必填项是否填写
				if ($data['uid'] != $uid) {
					return json('参数错误',1);
				}
				elseif ($data['name'] == '') {
					return json('分组名称不能为空',1);
				}
				elseif ($data['options'] == '') {
					return json('分组素材属性不能为空',1);
				}
				// 修改素材分组信息
				$upd = Db::name('category')->update($data);
				// 返回修改结果
				if ($upd > 0) {
					return json('修改成功',0);
				}
				else{
					return json('修改失败',1);
				}
			}
			else{
				return json('非法操作',1);
			}
		}
		else{
			return json('非法操作',1);
		}
	}


	/**
	 * 添加素材分组数据信息
	 * @param [array] $post [接收用户传递的请求数据]
	 *                      -- token string 登录凭证
	 *                      -- data json 操作数据集
	 *                      	-- uid 素材分组关联的用户id
	 *                      	-- name 素材分组名称
	 *                      	-- options 素材分组属性
	 * @return [json] [返回添加结果]
	 */
	function addOneCategory(){
		// 获取传递数据
		$post = input('');
		// 判断是否存在传递数据
		if (isset($post['data'])) {
			// 将json数据还原成数组
			$data = json_decode($post['data'],true);
			if (!empty($data)) {
				$uid = $this->user['id'];
				// 判断素材分组id是否为空
				$data['options'] = json_encode($data['options']);
				// var_dump($data['options']);die;
				if (isset($data['id']) || !isset($data['uid']) || $data['uid'] == '') {
				// 	$cate_reg = Db::name('category')->where('id = '.$data['id'].' and uid = '.$data['uid'])->find();
				// }
				// else{
					return json('参数错误',1);
				}
				// 判断必填项是否填写
				if ($data['uid'] != $uid) {
					return json('参数错误',1);
				}
				elseif ($data['name'] == '') {
					return json('分组名称不能为空',1);
				}
				elseif ($data['options'] == '') {
					return json('分组素材属性不能为空',1);
				}
				// 修改素材分组信息
				$upd = Db::name('category')->insert($data);
				// 返回修改结果
				if ($upd == 1) {
					return json('添加成功',0);
				}
				else{
					return json('添加失败',1);
				}
			}
			else{
				return json('非法操作',1);
			}
		}
		else{
			return json('非法操作',1);
		}
	}


	/**
	 * 修改素材分组数据信息
	 * @param [array] $post [接收用户传递的请求数据]
	 *                      -- token string 登录凭证
	 *                      -- data json 操作数据集
	 *                      	-- id 素材分组id
	 * @return [json] [返回修改结果]
	 */
	function delOneCategory(){
		// 获取传递数据
		$post = input('');
		// 判断是否存在传递数据
		if (isset($post['data'])) {
			// 将json数据还原成数组
			$data = json_decode($post['data'],true);
			if (!empty($data)) {
				$uid = $this->user['id'];
				// 判断素材分组id是否为空
				if (isset($data['id']) && $data['id'] != '') {
					$cate_reg = Db::name('category')->where('id = '.$data['id'])->find();
				}
				else{
					return json('参数错误',1);
				}
				// 判断是否存在该素材分组
				if ($cate_reg == '' || $uid != $cate_reg['uid']) {
					return json('素材分类信息有误',1);
				}
				// 修改素材分组信息
				$upd = Db::name('category')->delete($data['id']);
				// 返回修改结果
				if ($upd > 0) {
					return json('删除成功',0);
				}
				else{
					return json('删除失败',1);
				}
			}
			else{
				return json('非法操作',1);
			}
		}
		else{
			return json('非法操作',1);
		}
	}
}